Computers and computing devices (e.g., PDAs, smartphones, digital cameras, audio players and recorders, etc.) are becoming increasingly commonplace in homes, businesses, educational facilities, public facilities, and so forth throughout the world. With this increase has also come an increase in the need for security. Oftentimes, computer users have digital information stored on their computers or digital information in the form of (including but not limited to) documents, electronic mail, pictures, audio, and movies to be transferred to other computers that they desire to keep secret, or desire to allow only select other users to be able to read. Various cryptographic algorithms have been developed to allow such security to be maintained.
One class of cryptographic algorithms is referred to as symmetric key algorithms. In symmetric key algorithms, the same key(s) is used for encryption and decryption of information. Information to be kept secret is encrypted using a key(s), and then can be decrypted only by another user that knows the decryption algorithm to use and the key(s) that was used to encrypt the information.
One problem with cryptographic algorithms is that as computers have become increasingly powerful, malicious users are able to use this increased power to attempt to break or crack the cryptographic algorithms. Once broken or cracked, the malicious user can read the encrypted information, so it is no longer kept secret. In light of malicious users' attempts to break or crack cryptographic algorithms, it would be beneficial to increase the different cryptographic algorithms available to users, and to develop new types of cryptographic algorithms in order to stay ahead of such malicious users.